home *** CD-ROM | disk | FTP | other *** search
/ SGI Developer Toolbox 6.1 / SGI Developer Toolbox 6.1 - Disc 4.iso / src / tutorials / geometer / showcaseui.h < prev    next >
Encoding:
C/C++ Source or Header  |  1994-08-02  |  18.9 KB  |  599 lines

  1. /*
  2.  * Copyright 1991, 1992, 1993, 1994, Silicon Graphics, Inc.
  3.  * All Rights Reserved.
  4.  *
  5.  * This is UNPUBLISHED PROPRIETARY SOURCE CODE of Silicon Graphics, Inc.;
  6.  * the contents of this file may not be disclosed to third parties, copied or
  7.  * duplicated in any form, in whole or in part, without the prior written
  8.  * permission of Silicon Graphics, Inc.
  9.  *
  10.  * RESTRICTED RIGHTS LEGEND:
  11.  * Use, duplication or disclosure by the Government is subject to restrictions
  12.  * as set forth in subdivision (c)(1)(ii) of the Rights in Technical Data
  13.  * and Computer Software clause at DFARS 252.227-7013, and/or in similar or
  14.  * successor clauses in the FAR, DOD or NASA FAR Supplement. Unpublished -
  15.  * rights reserved under the Copyright Laws of the United States.
  16.  */
  17. #ifndef __SHOWCASEUI_H__
  18. #define __SHOWCASEUI_H__
  19.  
  20. #ifdef __cplusplus
  21. extern "C" {
  22. #endif
  23.  
  24. /**************************************************************************
  25.  *                                                                        *
  26.  *       Copyright (C) 1990, Silicon Graphics, Inc.                       *
  27.  *                                                                        *
  28.  *  These coded instructions, statements, and computer programs  contain  *
  29.  *  unpublished  proprietary  information of Silicon Graphics, Inc., and  *
  30.  *  are protected by Federal copyright law.  They  may  not be disclosed  *
  31.  *  to  third  parties  or copied or duplicated in any form, in whole or  *
  32.  *  in part, without the prior written consent of Silicon Graphics, Inc.  *
  33.  *                                                                        *
  34.  **************************************************************************/
  35.  
  36. #define UILEFT          100
  37. #define UIRIGHT         101
  38. #define UILRCENTER      102
  39. #define UITBCENTER      103
  40. #define UITOP           104
  41. #define UIBOTTOM        105
  42.  
  43. #define UIBUTTONUP    0
  44. #define UIBUTTONDOWN    1
  45. #define UIBUTTONCLICK    2
  46. #define UIBUTTONDOUBLE    3
  47.  
  48. #define P_UISHADOW      343
  49. #define P_UILINESHADOW     344
  50.  
  51. #define MENUBARHEIGHT   26
  52. #define SHADOWOFFSET    6
  53. #define MENUXGAP        9
  54.  
  55. #define TEXTHEIGHT      20
  56. #define DEFAULTFONT    0
  57.  
  58. #define CHECKBUTTON     1
  59. #define PALETTEBUTTON   2
  60. #define PUSHBUTTON      3
  61. #define RADIOBUTTON     4
  62. #define TOGGLEBUTTON    5
  63. #define TINYTOGGLE      6
  64. #define ICONBUTTON      7
  65. #define ICON            8
  66. #define INDICATOR       9
  67. #define BED             10
  68. #define GENERICBUTTON   11
  69. #define PTRBUTTON       12
  70. #define CUSTOMBUTTON    13
  71. #define TINYRADIO       14
  72. #define VSLIDER         15
  73. #define HSLIDER         16
  74. #define VALUATOR    17
  75. #define TEXTBOX        18
  76. #define TEXTLIST    19
  77. #define MENUBAR        20
  78. #define PULLDOWNMENU    21
  79. #define POPUPMENU    22
  80. #define TEXTLABEL    23
  81. #define BOLDTEXTLABEL    24
  82.  
  83. #define TROUGH          3
  84. #define THUMB           2
  85. #define SCROLLDOWN      -1
  86. #define SCROLLUP        1
  87. #define SLIDERWIDTH     20
  88. #define ARROWHEIGHT     20
  89. #define MINSHALF        13
  90.  
  91. /* Buttons */
  92.  
  93. #define BUTSTRLEN       200
  94. #define BUTHEIGHT       28
  95. #define BUTWIDTH        75
  96. #define TINYTOGGLEHEIGHT 16
  97. #define TINYTOGGLEWIDTH 16
  98. #define TINYRADIOHEIGHT 16
  99. #define TINYRADIOWIDTH  16
  100. #define PALETTEHEIGHT   35
  101. #define PALETTEWIDTH    40
  102. #define ICONHEIGHT      32
  103. #define ICONWIDTH       32
  104. #define CHECKHEIGHT     20
  105. #define CHECKWIDTH      20
  106. #define RADIOHEIGHT     24
  107. #define RADIOWIDTH      24
  108. #define INDICATORHEIGHT 28
  109. #define INDICATORWIDTH  10
  110. #define LABELFONTHEIGHT 11
  111.  
  112. #define BUTTONICONFONT  5600
  113. #define BUTTONFONT1     5601
  114. #define BUTTONFONT2     5602
  115. #define BUTTONFONT3     5603
  116.  
  117. typedef struct AButton {
  118.     long xmin,xmax,ymin,ymax;
  119.     long number;        /* the button number--used internally */
  120.     char str[BUTSTRLEN+1];      /* the label on or next to the button */
  121.     short active;               /* the button is on (menu option label #) */
  122.     short enable;               /* the button is able to be pressed */
  123.     short locate;               /* the button is locate highlighted */
  124.     short select;               /* the button is pressed */
  125.     short invisible;        /* the button is not visible */
  126.     short type;                 /* checkbutton, indicator, etc. */
  127.     short thedefault;           /* the button is the default button */
  128.     short sticky;               /* stays pressed until an unpress is called */
  129.     void  (*butcolor)();        /* color of the text or icon on the button */
  130.     void  (*drawbutton)(struct AButton *);      /* color of the text or icon on the button */
  131.     struct AButton **links;    /* used mainly for radio buttons to connect */
  132.     long numlinks;        /* the number of button links */
  133. } Button;
  134.  
  135. Button *newbut(long, long, long, long);
  136. Button *newcheckbut(long, long);
  137. Button *newpushbut(long, long);
  138. Button *newtogglebut(long, long, long);
  139. Button *newradiobut(long, long);
  140. Button *newindicator(long, long);
  141. Button *newtinyradio(long, long);
  142. Button *newtinytoggle(long, long);
  143. Button *newpalettebut(long, long);
  144. Button *newiconbut(long, long);
  145. Button *newptrbut(long, long);
  146. Button *newicon(long, long);
  147. Button *newcustombut(long, long, long, long, void (*drawbutton)());
  148. Button *newbed(long, long, long, long);
  149. Button *handlebutchar(long);
  150.  
  151. void    drawcheckbut(Button *b);
  152. void    drawindicatorbut(Button *b);
  153. void    drawpushbut(Button *b);
  154. void    drawbed(Button *b);
  155. void    drawtogglebut(Button *b);
  156. void    drawradiobut(Button *b);
  157. void    drawindicator(Button *b);
  158. void    drawtinyradio(Button *b);
  159. void    drawtinytoggle(Button *b);
  160. void    drawpalettebut(Button *b);
  161. void    drawiconbut(Button *b);
  162. void    drawicon(Button *b);
  163. void    drawptrbut(Button *b);
  164.  
  165. void    freebut(Button *);
  166. void    activatebut(Button *);
  167. void    deactivatebut(Button *);
  168. void    lockbut(Button *);
  169. void    flipactive(Button *);
  170. void    highlightbut(Button *);
  171. void    unhighlightbut(Button *);
  172. void    defaultbut(Button *);
  173. void    undefaultbut(Button *);
  174. void    setcolorbut(Button *, void (*butcolor)());
  175. void    linkbuttons(Button *, Button *);
  176. void    unlinkbutton(Button *);
  177. void    disablebut(Button *);
  178. void    enablebut(Button *);
  179. void    selectbut(Button *);
  180. void    unselectbut(Button *);
  181. void    makevisiblebut(Button *);
  182. void    makeinvisiblebut(Button *);
  183. void    stickbut(Button *);
  184. void    unstickbut(Button *);
  185. void    loadbut(Button *, char *);
  186. void    unpressbut(Button *);
  187. void    initbut();
  188. void    initiconbut();
  189. void    drawbut(Button *);
  190. void    drawbutnow(Button *);
  191. void    drawborder(Button *);
  192. void    drawaborder(long, long, long, long);
  193. void    positionbut(Button *, short, long);
  194. void    drawlabel(char *, long, long);
  195. void    drawboldlabel(char *, long, long);
  196. void    clearlabel(char *, long, long);
  197. void    drawiconlabel(Button *);
  198. void    unpresslinkbuts(Button *);
  199. void    UIdrawbuttons();
  200. void    UIlocatebuttons();
  201.  
  202. short    gethighlightbut(Button *);
  203. short    getdefaultbut(Button *);
  204. short    locatebut(Button *, long, long);
  205. short    valuebut(Button *);
  206. short    getenablebut(Button *);
  207. short    getselectbut(Button *);
  208. short    getvisiblebut(Button *);
  209. short    getstickbut(Button *);
  210. short    inbut(Button *, long, long);
  211. short    pressbut(Button *, long, long);
  212. short    selectedpressbut(Button *, long, long, long);
  213.  
  214. /* Horizontal Sliders */
  215.  
  216. typedef struct {
  217.     long        xmin, ymin, xmax, ymax;
  218.     long        scenter;        /* the center of the thumb */
  219.     long    shalf;            /* half of the thumb length */
  220.     long    oldpos;            /* old scenter    */
  221.     long    arrowdelta;        /* arrow delta    */
  222.     short       locate;         /* locate highlight */
  223.     short    select;            /* selected or not */
  224.     short     invisible;        /* the slider is not visible */
  225.     short       enable;            /* the slider is enabled */
  226.     short    thumb;            /* whether the thumb should show */
  227. } Slider;
  228.  
  229. typedef    Slider HSlider;
  230.  
  231. HSlider    *newhs(long, long, long, long, long);
  232.  
  233. void     movehs(HSlider *, long, long, long);
  234. void    setarrowdeltahs(HSlider *, long);
  235. void    freehs(HSlider *);
  236. void    disablehs(HSlider *);
  237. void    enablehs(HSlider *);
  238. void    highlighths(HSlider *, short);
  239. void    unhighlighths(HSlider *);
  240. void    selecths(HSlider *, short);
  241. void    unselecths(HSlider *);
  242. void    makevisiblehs(HSlider *);
  243. void    makeinvisiblehs(HSlider *);
  244. void    presshsarrow(HSlider *, short);
  245. void    sethshalf(HSlider *, long);
  246. void    sethscenter(HSlider *, long);
  247. void    sethsval(HSlider *, float);
  248. void    movehsval(HSlider *, float);
  249. void    reseths(HSlider *);
  250. void    drawhs(HSlider *);
  251. void    drawhsnow(HSlider *);
  252. void    drawhsarrows(HSlider *);
  253.  
  254. short     locatehs(HSlider *, long, long);
  255. short     getenablehs(HSlider *);
  256. short     gethighlighths(HSlider *);
  257. short     getselecths(HSlider *);
  258. short     getenablehs(HSlider *);
  259. short    getvisiblehs(HSlider *);
  260. short     inhs(HSlider *, long, long);
  261. short     handlehs(HSlider *, long, long);
  262.  
  263. short     selectedhs(HSlider *, long, long, long, long *, void (*adjust)());
  264.  
  265. long     gethstrough(HSlider *);
  266.  
  267. float     gethsval(HSlider *);
  268.  
  269. /* Pull-down menus  and MenuBars */
  270.  
  271. typedef int (*PFI)(long);
  272.  
  273. typedef struct MenuItem {
  274.     struct MenuItem     *next;          /* next entry in pulldown       */
  275.     PFI                 func;           /* executed by entry chosen %f  */
  276.     PFI                 itemfunc;
  277.     int                 draw(struct PullDown *, struct MenuItem *);           /* custom drawing on entry %d   */
  278.     struct PullDown     *pd;            /* pulldown for rollover menu %m*/
  279.     char                *text;          /* text in entry                */
  280.     short               width;          /* required width for this entry*/
  281.     short               yoffset;        /* offset from pd->yorg         */
  282.     short               select;         /* selected or not              */
  283.     short               no;             /* number of entry              */
  284.     long                retno;          /* return value %x              */
  285.     short               underline;      /* separator under this entry %l*/
  286.     short               active;         /* check mark or not            */
  287.     short               enable;         /* able to be picked            */
  288.     char                *altkey;        /* alt key equivalent %a        */
  289. } MenuItem;
  290.  
  291. typedef struct PullDown {
  292.     struct MenuItem     *entries;       /* menu entries on pulldown     */
  293.     struct PullDown     *subpd;
  294.     PFI                 func;           /* exec. by any choice on pd %F */
  295.     short               nentries;       /* number of menu entries on pd */
  296.     short               slide;          /* any entries have a rollover? */
  297.     short               active;         /* any entries have a check mark*/
  298.     short               width;          /* max. width of all entries    */
  299.     short               height;         /* height of pulldown           */
  300.     char                *title;         /* title on menubar & pulldown  */
  301.     short               twidth;         /* pixel width of title         */
  302.     short               xorg;           /* screen coordinates of right  */
  303.     short               yorg;           /* screen coordinates of top    */
  304.     short               txorg;          /* screen coords. of title xorg */
  305.     short               orglocked;
  306.     short               enable;         /* able to be picked            */
  307.     struct menubar    *mb;        /* the menu bar where this pd is*/
  308. } PullDown;
  309.  
  310. typedef struct menubar {
  311.     long        xorg, yorg;             /* origin of window             */
  312.     long        xmin, ymin, xmax, ymax; /* screen coordinates           */
  313.     long        count;                  /* number of pulldown menus     */
  314.     short       locate;                 /* locate highlight (# of pd)   */
  315.     short     invisible;        /* the menu bar is not visible     */
  316.     short    enable;            /* the menu bar is enables    */
  317.     PullDown    **pds;                  /* pulldown menus               */
  318. } MenuBar;
  319.  
  320. PullDown        *newpd(MenuBar *, char *);
  321. PullDown        *createmenu(MenuBar *, char **, long, long);
  322.  
  323. void    freepd(register PullDown *);
  324. void    initpd();
  325. #ifdef __cplusplus
  326. void    loadpd(...);
  327. #else
  328. void    loadpd(PullDown *, ...);
  329. #endif
  330. void    deactivatepdentry(PullDown *, char *);
  331. void    activatepdentry(PullDown *, char *);
  332. void    disablepdentry(PullDown *, char *);
  333. void    enablepdentry(PullDown *, char *);
  334. void    disablepd(PullDown *);
  335. void    enablepd(PullDown *);
  336. void    changepdtitle(PullDown *, char *);
  337. void    addtopd(PullDown *, MenuItem *);
  338.  
  339. short    getenablepd(PullDown *);
  340. short    changepd(PullDown *, char *, char *);
  341. short    valuepdentry(PullDown *, char *);
  342.  
  343. MenuItem        *getpdentry(PullDown *, char *);
  344. MenuBar        *newmenubar();
  345.  
  346. void    loadmenubar(MenuBar *, long, PullDown **);
  347. void    addtomenubar(MenuBar *, PullDown *);
  348. void    removefrommenubar(MenuBar *, PullDown *);
  349. void    movemenubar(MenuBar *);
  350. void    highlightmb(MenuBar *, long);
  351. void    unhighlightmb(MenuBar *);
  352. void    makevisiblemb(MenuBar *);
  353. void    makeinvisiblemb(MenuBar *);
  354. void    enablemb(MenuBar *);
  355. void    disablemb(MenuBar *);
  356. void    drawmenubar(MenuBar *);
  357. void    drawmenubarnow(MenuBar *);
  358.  
  359. long    dopulldown(MenuBar *);
  360. long    inmenubar(MenuBar *, long, long);
  361.  
  362. short    gethighlightmb(MenuBar *);
  363. short    getvisiblemb(MenuBar *);
  364. short    getenablemb(MenuBar *);
  365. short    locatemenubar(MenuBar *, long, long);
  366.  
  367. /* Text Boxes */
  368.  
  369. #define LABELSTRLEN     50
  370. #define TBSTRLEN        200
  371. #define TEXTBOXHEIGHT   28
  372.  
  373. /* Define for the settbtype() and gettypein() flag */
  374. #define TYPEIN_STRING   0
  375. #define TYPEIN_INT      1
  376. #define TYPEIN_FILE     2
  377. #define TYPEIN_FLOAT    3
  378. #define TYPEIN_HEX      4
  379. #define TYPEIN_WHOLE    5
  380.  
  381. typedef struct {
  382.     long    xmin, xmax, ymin;
  383.     long     number;            /* the tb number--used internally */
  384.     char        str[TBSTRLEN+1];        /* contents of text box         */
  385.     char        label[LABELSTRLEN+1];   /* label to left of text box    */
  386.     long        tp1, tp2;               /* textpointers                 */
  387.     long        charWidth;              /* width of box in # of characters */
  388.     short       active;
  389.     short       enable;
  390.     short     invisible;        /* the text box is not visible     */
  391.     short       type;                   /* for type-checking            */
  392.     long        index;          /* index into leftmost visible character */
  393. } TextBox;
  394.  
  395. TextBox    *newtb(long, long, long);
  396. TextBox *getactivetb();
  397.  
  398. void    inittb();
  399. void    freetb(TextBox *);
  400. void    labeltb(TextBox *, char *);
  401. void    settbtype(TextBox *, long);
  402. void    movetb(TextBox *, long, long, long);
  403. void    activatetb(TextBox *);
  404. void    deactivatetb(TextBox *);
  405. void    enabletb(TextBox *);
  406. void    disabletb(TextBox *);
  407. void    makevisibletb(TextBox *);
  408. void    makeinvisibletb(TextBox *);
  409. void    cleartb(TextBox *);
  410. void    adjusttb(TextBox *, long);
  411. void    loadtb(TextBox *, char *);
  412. void    backspacetb(TextBox *);
  413. void    inserttbchar(TextBox *, char);
  414. void    drawtb(TextBox *);
  415. void    drawtbnow(TextBox *);
  416.  
  417. char    *gettbstr(TextBox *);
  418.  
  419. short    intb(TextBox *, long, long);
  420. short    handletb(TextBox *, long, long, long, long);
  421. short    findtp(TextBox *, long);
  422. short    getenabletb(TextBox *);
  423. short   getvisibletb(TextBox *);
  424.  
  425. int     tilde(char *, char *);
  426.  
  427. /* Vertical Sliders */
  428.  
  429. typedef    Slider VSlider;
  430.  
  431. VSlider *newvs(long, long, long, long, long);
  432.  
  433. void     movevs(VSlider *, long, long, long);
  434. void    setarrowdelta(VSlider *, long);
  435. void    freevs(VSlider *);
  436. void    disablevs(VSlider *);
  437. void    enablevs(VSlider *);
  438. void    highlightvs(VSlider *, short);
  439. void    unhighlightvs(VSlider *);
  440. void    selectvs(VSlider *, short);
  441. void    unselectvs(VSlider *);
  442. void    makevisiblevs(VSlider *);
  443. void    makeinvisiblevs(VSlider *);
  444. void    pressvsarrow(VSlider *, short);
  445. void    setvshalf(VSlider *, long);
  446. void    setvscenter(VSlider *, long);
  447. void    setvsval(VSlider *, float);
  448. void    movevsval(VSlider *, float);
  449. void    resetvs(VSlider *);
  450. void    drawvs(VSlider *);
  451. void    drawvsnow(VSlider *);
  452. void    drawvsarrows(VSlider *);
  453.  
  454. short   locatevs(VSlider *, long, long);
  455. short   getenablevs(VSlider *);
  456. short   gethighlightvs(VSlider *);
  457. short   getselectvs(VSlider *);
  458. short   getenablevs(VSlider *);
  459. short    getvisiblevs(VSlider *);
  460. short   invs(VSlider *, long, long);
  461. short   handlevs(VSlider *, long, long);
  462.  
  463.  
  464. long    getvstrough(VSlider *);
  465.  
  466. float   getvsval(VSlider *);
  467.  
  468. /* Text Lists */
  469.  
  470. #define TEXTLISTFONT            5601
  471.  
  472. typedef struct {
  473.     long        xmin, xmax, ymin, ymax;
  474.     long        listheight;         /* in lines of text */
  475.     char        **strs;            /* text    */
  476.     long        top;            /* index into strs */
  477.     long        count;          /* total number of strings */
  478.     long        selecteditem;        /* index into selecteditem or -1 */
  479.     long        locateditem;        /* index into locateditem or -1 */
  480.     short     invisible;        /* the text list is not visible    */
  481.     VSlider     *vs;            /* the associated slider if one */
  482. } TextList;
  483.  
  484. short   selectedvs(VSlider *, TextList *, long, long, long);
  485.  
  486. TextList *newtl(long, long, long, long);
  487.  
  488. void     movetl(TextList *, long, long, long, long);
  489. void    inittl();
  490. void    resettl(TextList *);
  491. void    unselecttl(TextList *);
  492. void    selecttlitem(TextList *, long);
  493. void    highlighttl(TextList *, long);
  494. void    unhighlighttl(TextList *);
  495. void    makevisibletl(TextList *);
  496. void    makeinvisibletl(TextList *);
  497. void    settltop(TextList *, long);
  498. void    settlstrings(TextList *, char **);
  499. void    adjusttop(TextList *, float);
  500. void    drawtl(TextList *);
  501. void    drawtlnow(TextList *);
  502. void    settlstrslinkhandle(char **, TextList *);
  503. void    adjustslider(TextList *, VSlider *);
  504.  
  505. short    getselectedtlitem(TextList *);
  506. short    gethighlighttl(TextList *);
  507. short    getvisibletl(TextList *);
  508. short    getitemvisibletl(TextList *, long);
  509. short    locatetl(TextList *, long, long);
  510. short    intl(TextList *, long, long);
  511. short    handletl(TextList *, long, long);
  512. short    selectedtl(TextList *, long, long, long);
  513.  
  514. long    gettextlistheight(long);
  515. long    gettlheightcount(long, long);
  516.  
  517. char    *selectedstring(TextList *);
  518.  
  519. /* Valuators */
  520.  
  521. #define VALUATORWIDTH   22
  522.  
  523. typedef    Slider Valuator;
  524.  
  525. Valuator *newval(long, long, long, long, long, short);
  526.  
  527. void     moveval(Valuator *, long, long, long);
  528. void    setvalarrowdelta(Valuator *, long);
  529. void    freeval(Valuator *);
  530. void    disableval(Valuator *);
  531. void    enableval(Valuator *);
  532. void    highlightval(Valuator *, short);
  533. void    unhighlightval(Valuator *);
  534. void    selectval(Valuator *, short);
  535. void    unselectval(Valuator *);
  536. void    makevisibleval(Valuator *);
  537. void    makeinvisibleval(Valuator *);
  538. void    pressvalarrow(Valuator *, short);
  539. void    setvalhalf(Valuator *, long);
  540. void    setvalcenter(Valuator *, long);
  541. void    setvalval(Valuator *, float);
  542. void    movevalval(Valuator *, float);
  543. void    resetval(Valuator *);
  544. void    drawval(Valuator *);
  545. void    drawvalnow(Valuator *);
  546. void    drawvalarrows(Valuator *);
  547.  
  548. short    getarrowsval(Valuator *);
  549. short    getenableval(Valuator *);
  550. short    gethighlightval(Valuator *);
  551. short    getselectval(Valuator *);
  552. short    getvisibleval(Valuator *);
  553. short    locateval(Valuator *, long, long);
  554. short    inval(Valuator *, long, long);
  555. short    handleval(Valuator *, long, long);
  556. short    selectedval(Valuator *, long, long, long);
  557.  
  558. float    getvalval(Valuator *);
  559.  
  560. /* Misc.    */
  561. void    backgrounddraw(long, long, long, long);
  562. void    backgroundclear();
  563. void    windowborderdraw();
  564. void    initui();
  565. void    uiokdraw();
  566. void    uinodraw();
  567. void    defglfont(char *, long, long);
  568. void    unlocateall();
  569.  
  570. short    uiswapbuffers();
  571.  
  572. void uiWhite();
  573. void uiVyLtGray();
  574. void uiBlack();
  575.  
  576. #ifdef NOTDEF
  577. typedef struct {
  578.     short    type;
  579.     short       active;
  580.     short       enable;
  581.     short     invisible;
  582.     short    select;            /* selected or not */
  583.     long        xmin, ymin, xmax, ymax;
  584.     widget_t    *(*createme)();
  585.     void    (*deleteme)();
  586.     void    (*drawme)();
  587.     long    (*editme)();
  588.     void    (*inme)();
  589.     void    (*loadme)();
  590.     short    (*locateme)();
  591.     void    (*positionme)();
  592. } Widget;
  593. #endif
  594. #ifdef __cplusplus
  595. }
  596. #endif
  597.  
  598. #endif    /* !__SHOWCASEUI_H__ */
  599.